#import <cacao/CSObject.h>

@class CSString, CSTable;

@interface CSError : CSObject
{
	CSString 	*_name;
	CSString 	*_reason;
	CSTable 	*_info;
}

- (id)initWithName:(CSString *)name reason:(CSString *)reason info:(CSTable *)info;

+ (CSError *)errorWithName:(CSString *)name reason:(CSString *)reason info:(CSTable *)info;

+ (void)raise:(CSString *)name format:(CSString *)format, ...;
+ (void)raise:(CSString *)name format:(CSString *)format arguments:(va_list)args;
- (void)raise;

- (CSString *)name;
- (CSString *)reason;
- (CSTable *)info;

@end
